package Management;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import paquetes.negocioVO.ListaDePrecioVO;
import bean.dao.ListaPreciosDAO;
import Entities.*;
import paquetes.negocioVO.*;


public class ManagementListaPrecios {
	private static ManagementListaPrecios instancia;

	public static ManagementListaPrecios getInstancia(){
		if(instancia == null)
			instancia = new ManagementListaPrecios();
		return instancia;
	}

	public ListaDePrecio VoAEntitie(ListaDePrecioVO listaVO) {
		ListaDePrecio lista = new ListaDePrecio();
		lista.setId(listaVO.getId());
		lista.setFechaCreacion(listaVO.getFechaCreacion());
		lista.setFechaAnulacion(listaVO.getFechaAnulacion());
		lista.setMargenSobreCostoInterSucursal(listaVO.getMargenSobreCostoInterSucursal());
		lista.setImportePorKmViajeLocal(listaVO.getImportePorKmViajeLocal());
		return lista;
	}

	private ListaDePrecioVO listaEntitieAVO(ListaDePrecio lista) {
		ListaDePrecioVO listaVO = new ListaDePrecioVO();
		listaVO.setId(lista.getId());
		listaVO.setFechaCreacion(lista.getFechaCreacion());
		listaVO.setFechaAnulacion(lista.getFechaAnulacion());
		listaVO.setMargenSobreCostoInterSucursal(lista.getMargenSobreCostoInterSucursal());
		listaVO.setImportePorKmViajeLocal(lista.getImportePorKmViajeLocal());
		return listaVO;
	}

	public void generarLista( Date FechaCreacion, Date FechaAnulacion,float Margen,float ImportePorKmViajeLocal) {


		ListaPreciosDAO listaDAO = new ListaPreciosDAO();
		ListaDePrecio lista = new ListaDePrecio();

		lista.setFechaCreacion(FechaCreacion);
		lista.setFechaAnulacion(FechaAnulacion);
		lista.setMargenSobreCostoInterSucursal(Margen);
		lista.setImportePorKmViajeLocal(ImportePorKmViajeLocal);

		listaDAO.altaListaPrecios(lista);
	}

	public ListaDePrecioVO dameLista(Integer nro) {
		try {
			ListaPreciosDAO miListaDePrecios = new ListaPreciosDAO();
			ListaDePrecio lista = miListaDePrecios.getListaDePrecios(nro);
			ListaDePrecioVO lp = new ListaDePrecioVO();
			lp.setId(lista.getId());
			lp.setFechaCreacion(lista.getFechaCreacion());
			lp.setFechaAnulacion(lista.getFechaAnulacion());
			lp.setMargenSobreCostoInterSucursal(lista.getMargenSobreCostoInterSucursal());
			lp.setImportePorKmViajeLocal(lista.getImportePorKmViajeLocal());

			return lp;

		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public List<ListaDePrecioVO> dameListas() {
		try {
			ListaPreciosDAO miListaDePrecios = new ListaPreciosDAO();
			List<ListaDePrecio> listas = miListaDePrecios.getListasDePrecios();
			List<ListaDePrecioVO> listasVO = new ArrayList<ListaDePrecioVO>();
			for (int i=0;i<listas.size();i++)
			{
				ListaDePrecioVO lp = new ListaDePrecioVO();
				lp.setId(listas.get(i).getId());
				lp.setFechaCreacion(listas.get(i).getFechaCreacion());
				lp.setFechaAnulacion(listas.get(i).getFechaAnulacion());
				lp.setMargenSobreCostoInterSucursal(listas.get(i).getMargenSobreCostoInterSucursal());
				lp.setImportePorKmViajeLocal(listas.get(i).getImportePorKmViajeLocal());
				listasVO.add(lp);
			}
			return listasVO;

		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
}
